Software engineering processing methods; Software life cycle; Computer-based system engineering; Software project management; Requirements and specification: requirement engineering, requirement analysis, prototyping, formal and algebraic specification; Software design: architectural design, object-oriented, function oriented, real time and user interface design; Reliability; Maintenance; Portability; Documentation, Re-engineering and reverse engineering; Case study. Weekly practice in the lab. The course also expresses the role of UML for visualizing, specifying, constructing, and documenting software system.